/*
 * @lc app=leetcode.cn id=283 lang=golang
 *
 * [283] 移动零
 */

// 2. 双指针 交换
// 时间 O(n)
// 空间 O(1)
// @lc code=start
func moveZeroes(nums []int) {
	j := 0
	for i := 0; i < len(nums); i++ {
		if nums[i] != 0 {
			nums[i], nums[j] = nums[j], nums[i]
			j++
		}
	}

}

// @lc code=end

// 1. 直接补0
// 时间 O(n)
// 空间 O(1)
// @lc code=start
func moveZeroes(nums []int) {
	j := 0
	for i := 0; i < len(nums); i++ {
		if nums[i] != 0 {
			nums[j] = nums[i]
			j++
		}
	}

	for ; j < len(nums); j++ {
		nums[j] = 0
	}
}

// @lc code=end

